import { useEffect, useState } from "react";
import { todosData } from "../data/todos";
import type { Todo } from "../types/todo";

export default function useTodos() {
    const [todos, setTodos] = useState(() => {
        const storedTodos: Todo[] = JSON.parse(localStorage.getItem('todos') || '[]');
        return storedTodos.length > 0 ? storedTodos : todosData;
    });

    useEffect(() => {
        localStorage.setItem('todos', JSON.stringify(todos));
    }, [todos])

    const handleToggle = (id: number, completed: boolean) => {
        setTodos(todos.map(todo => todo.id === id ? { ...todo, completed } : todo));
    };

    const handleAddTodo = (title: string) => {
        setTodos([
            {
                id: Date.now(),
                title,
                completed: false
            },
            ...todos
        ])
    };

    const handleDelete = (id: number) => {
        setTodos(todos.filter(todo => todo.id !== id));
    };

    return {
        todos,
        handleToggle,
        handleAddTodo,
        handleDelete
    };
}
